#pragma once
#include <XnCppWrapper.h>
#include <XnUSB.h>
#include <XnTypes.h>
#include "utils.h"
#include <gl/GL.h>
#include <gl/GLU.h>
#include <vector>


/**
 * Create the circle of fifths overlay... current chord is highlighted
 */
class ChordCircle
{
public:	
	ChordCircle();
	~ChordCircle();
	//void DrawCircle(Chords key);
	void Draw(Chords key, bool all);
	void DrawRays();
	void DrawCircle(float cx, float cy, float r, int num_segments, bool min);
	void DrawLetters(float cx, float cy, float r);
	void DrawInstruments();

	void UpdateColor(Chords k);

	void SetKey(Chords key) {mKey = key;}
	void SetRECT(RECT window, int x, int y) {rc = window; maxX = x; maxY = y;}
	void SetRad(int mn, int mx) {minRadius = mn; maxRadius = mx;}
	
private:
	std::vector<GLdouble> mColor;
	std::vector< std::vector< float > > cInner;
	std::vector< std::vector< float > > cOuter;
	Chords mKey;
	int maxX, maxY;
	int minRadius, maxRadius;
	RECT rc;
	Chords curCol;
};
